package ldh.im.dto.codec.binery;

import io.netty.buffer.ByteBuf;
import ldh.im.dto.business.P2gTextMessage;
import ldh.im.dto.enmus.MessageType;

public class P2gTextMessageCodec extends AckToCodec<P2gTextMessage> {

    @Override
    public void encode(P2gTextMessage textMessage, ByteBuf byteBuf) {
        super.encode(textMessage, byteBuf);
        byteBuf.writeLong(textMessage.getFromUserId());
        byteBuf.writeLong(textMessage.getGroupId());
        writeString(byteBuf, textMessage.getContent());
        byteBuf.writeByte(textMessage.getMessageType().getValue());
    }

    @Override
    public void decode(P2gTextMessage textMessage, ByteBuf byteBuf) {
        super.decode(textMessage, byteBuf);
        textMessage.setFromUserId(byteBuf.readLong());
        textMessage.setGroupId(byteBuf.readLong());
        textMessage.setContent(readString(byteBuf));
        textMessage.setMessageType(MessageType.getMessageTypeByValue(byteBuf.readByte()));
    }

    @Override
    public P2gTextMessage create() {
        return new P2gTextMessage();

    }
}
